<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://tempuri.org/" elementFormDefault="qualified" targetNamespace="http://tempuri.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation="http://localhost:2877/MembershipProviderService.svc?xsd=xsd2" namespace="http://schemas.datacontract.org/2004/07/SecurityAgent" />
  <xs:import schemaLocation="http://localhost:2877/MembershipProviderService.svc?xsd=xsd4" namespace="http://schemas.datacontract.org/2004/07/System.Web.Security" />
  <xs:element name="ExpireToken">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="userToken" nillable="true" type="xs:anyType" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ExpireTokenResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ExpireTokenResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetEnablePasswordReset">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetEnablePasswordResetResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetEnablePasswordResetResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetEnablePasswordRetrieval">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetEnablePasswordRetrievalResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetEnablePasswordRetrievalResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMinRequiredPasswordLength">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMinRequiredPasswordLengthResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetMinRequiredPasswordLengthResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPasswordAttemptWindow">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPasswordAttemptWindowResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetPasswordAttemptWindowResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPasswordFormat">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPasswordFormatResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetPasswordFormatResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPasswordStrengthRegularExpression">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPasswordStrengthRegularExpressionResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetPasswordStrengthRegularExpressionResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetRequiresQuestionAndAnswer">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetRequiresQuestionAndAnswerResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetRequiresQuestionAndAnswerResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetRequiresUniqueEmail">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetRequiresUniqueEmailResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetRequiresUniqueEmailResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMaxInvalidPasswordAttempt">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMaxInvalidPasswordAttemptResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetMaxInvalidPasswordAttemptResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMinRequiredNonAlphanumericCharacters">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMinRequiredNonAlphanumericCharactersResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetMinRequiredNonAlphanumericCharactersResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ChangePassword">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="username" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="oldPassword" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="newPassword" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ChangePasswordResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ChangePasswordResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ChangePasswordQuestionAndAnswer">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="username" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="password" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="newPasswordQuestion" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="newPasswordAnswer" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ChangePasswordQuestionAndAnswerResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ChangePasswordQuestionAndAnswerResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CreateUser">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="username" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="password" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="email" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="passwordQuestion" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="passwordAnswer" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="isApproved" type="xs:boolean" />
        <xs:element minOccurs="0" name="providerUserKey" nillable="true" type="xs:anyType" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CreateUserResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/SecurityAgent" minOccurs="0" name="CreateUserResult" nillable="true" type="q1:SecurityPrincipal" />
        <xs:element xmlns:q2="http://schemas.datacontract.org/2004/07/System.Web.Security" minOccurs="0" name="status" type="q2:MembershipCreateStatus" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DeleteUser">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="operatorToken" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="username" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="deleteAllRelatedData" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DeleteUserResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="DeleteUserResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="FindUsersByEmail">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="emailToMatch" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="pageIndex" type="xs:int" />
        <xs:element minOccurs="0" name="pageSize" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="FindUsersByEmailResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q3="http://schemas.datacontract.org/2004/07/SecurityAgent" minOccurs="0" name="FindUsersByEmailResult" nillable="true" type="q3:SecurityPrincipalCollection" />
        <xs:element minOccurs="0" name="totalRecords" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="FindUsersByName">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="usernameToMatch" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="pageIndex" type="xs:int" />
        <xs:element minOccurs="0" name="pageSize" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="FindUsersByNameResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q4="http://schemas.datacontract.org/2004/07/SecurityAgent" minOccurs="0" name="FindUsersByNameResult" nillable="true" type="q4:SecurityPrincipalCollection" />
        <xs:element minOccurs="0" name="totalRecords" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetAllUsers">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="operatorToken" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="pageIndex" type="xs:int" />
        <xs:element minOccurs="0" name="pageSize" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetAllUsersResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q5="http://schemas.datacontract.org/2004/07/SecurityAgent" minOccurs="0" name="GetAllUsersResult" nillable="true" type="q5:SecurityPrincipalCollection" />
        <xs:element minOccurs="0" name="totalRecords" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetNumberOfUsersOnline">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetNumberOfUsersOnlineResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetNumberOfUsersOnlineResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPassword">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="username" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="answer" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPasswordResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetPasswordResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetUserByUserName">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="username" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="userIsOnline" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetUserByUserNameResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q6="http://schemas.datacontract.org/2004/07/SecurityAgent" minOccurs="0" name="GetUserByUserNameResult" nillable="true" type="q6:SecurityPrincipal" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetUserByKey">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="providerUserKey" nillable="true" type="xs:anyType" />
        <xs:element minOccurs="0" name="userIsOnline" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetUserByKeyResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q7="http://schemas.datacontract.org/2004/07/SecurityAgent" minOccurs="0" name="GetUserByKeyResult" nillable="true" type="q7:SecurityPrincipal" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetUserNameByEmail">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="email" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetUserNameByEmailResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetUserNameByEmailResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ResetPassword">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="username" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="answer" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ResetPasswordResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ResetPasswordResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UnlockUser">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="operatorToken" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="userName" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UnlockUserResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="UnlockUserResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateUser">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="operatorToken" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="userName" nillable="true" type="xs:string" />
        <xs:element xmlns:q8="http://schemas.datacontract.org/2004/07/SecurityAgent" minOccurs="0" name="user" nillable="true" type="q8:SecurityPrincipal" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateUserResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="ValidateUser">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="username" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="password" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ValidateUserResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ValidateUserResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ValidateAndRegisterUser">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationKey" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="username" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="password" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ValidateAndRegisterUserResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ValidateAndRegisterUserResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ObtainServiceUserByToken">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="serviceApp" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="userToken" nillable="true" type="xs:anyType" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ObtainServiceUserByTokenResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q9="http://schemas.datacontract.org/2004/07/SecurityAgent" minOccurs="0" name="ObtainServiceUserByTokenResult" nillable="true" type="q9:SecurityPrincipal" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>